precision mediump float;

uniform vec2 u_resolution;

// 三角形
vec2 triangle[3];

// 颜色
vec4 c1 = vec4(1,0,0, 1.0);
vec4 c2 = vec4(0,1,1, 1.0);
vec4 c3 = vec4(1,0,1, 1.0);

// 一圈的弧度
float pi2 = radians(360.0);

// 是否三角形内部
bool isInside(vec2 p){
  for(int i=0; i<3; i++){
    // 三角形两个点组成的向量
    vec2 l = triangle[(i+1)>=3?0:i+1] - triangle[i];
    vec2 p0 = p - triangle[i];
    // 获取叉乘的z值
    float z = cross(vec3(p0,0),vec3(l,0)).z;
    // z大于0则在向量右侧
    if(z > 0.0){
      return false;
    }
  }
 return true;
}

void main (){
  // 将坐标系原点放置在中心
  vec2 uv = ( 2.0 * gl_FragCoord.xy - u_resolution.xy) / min(u_resolution.x,u_resolution.y);
  // 三点坐标
  triangle[0] = vec2(-0.5,-0.5);
  triangle[1] = vec2(0.5,-0.5);
  triangle[2] = vec2(0.0,0.5);
  bool flag = isInside(uv);
  vec4 color = vec4(0,0,0,1);

  if(flag){
    color = vec4(1);
  }
  gl_FragColor=color;
}